import { Module } from "@nestjs/common";
import { TypeOrmModule } from "@nestjs/typeorm";
import { DeputyGeneralService } from "../../services/deputy-general.service";
import { DeputyWsHandlers } from "../../gateway/deputy-ws-handlers";
import { DeputyGeneralController } from "./deputy-general.controller";
import { DeputyGeneral } from "../../entities/deputy-general.entity";
import { DeputyGeneralBase } from "../../entities/deputy-general-base.entity";
import { PlayerDeputy } from "../../entities/player-deputy.entity";
import { DeputyGeneralSkillLearned } from "../../entities/deputy-general-skill-learned.entity";
import { DeputyGeneralEquipment } from "../../entities/deputy-general-equipment.entity";
import { DeputyGeneralStone } from "../../entities/deputy-general-stone.entity";
import { PlayerDeputyWarehouse } from "../../entities/player-deputy-warehouse.entity";
import { SkillBase } from "../../entities/skill-base.entity";
import { CharacterInventoryEntity } from "../../entities/character-inventory.entity";
import { RedisModule } from "../redis.module";
import { LevelExperienceEntity } from "../../entities/level-experience.entity";
import { DeputyAttributeService } from "../../services/deputy-attribute.service";
import { DeputyAttributePointsEntity } from "../../entities/deputy-attribute-points.entity";

@Module({
  imports: [
    TypeOrmModule.forFeature([
      DeputyGeneral,
      DeputyGeneralBase,
      PlayerDeputy,
      DeputyGeneralSkillLearned,
      DeputyGeneralEquipment,
      DeputyGeneralStone,
      PlayerDeputyWarehouse,
      SkillBase,
      CharacterInventoryEntity,
      LevelExperienceEntity,
      DeputyAttributePointsEntity,
    ]),
    RedisModule,
  ],
  controllers: [DeputyGeneralController],
  providers: [DeputyGeneralService, DeputyWsHandlers, DeputyAttributeService],
  exports: [DeputyGeneralService, DeputyWsHandlers],
})
export class DeputyGeneralModule {}
